home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 10 / amigaformatcd10.iso / -screenplay- / shareware / mris 1.1 / .mris1_1src.lha / defmris.c < prev    next >
C/C++ Source or Header  |  1996-08-25  |  8KB  |  224 lines

  1. /* Copyright (C) 1993, 1992 Nathan Sidwell */
  2. /* RCS $Id: defmris.c,v 4.4 1993/12/10 11:52:23 nathan Stable $ */
  3. #define EXTERN
  4. #include "xmris.h"
  5. #include "defmris.h"
  6. #include "defcom.c"
  7. /*{{{  extern unsigned char letter_mris[] =*/
  8. unsigned char letter_mris[] =
  9. {
  10.   LETTERPOS(1, 3),
  11.   LETTERPATH(0, 2), LETTERPATH(3, 1), LETTERPATH(1, 2), LETTERPATH(0, 2),
  12.   LETTERPATH(3, 1), LETTERPATH(1, 2), LETTERPATH(3, 1), LETTERPATH(0, 1),
  13.   LETTERPATH(3, 2), LETTERPATH(0, 1), LETTERPATH(2, 2), LETTERPATH(1, 1),
  14.   LETTERPATH(3, 1), LETTERPATH(1, 1), LETTERPATH(3, 2), LETTERPATH(0, 2),
  15.   LETTERPATH(1, 2), LETTERPATH(3, 3), LETTERPATH(0, 1), LETTERPATH(2, 2),
  16.   LETTERPATH(0, 1), LETTERPATH(3, 2),
  17.   LETTEREND
  18. };
  19. /*}}}*/
  20. /*{{{  extern unsigned char letter_msit[] =*/
  21. unsigned char letter_msit[] =
  22. {
  23.   LETTERPOS(1, 3),
  24.   LETTERPATH(0, 2), LETTERPATH(3, 1), LETTERPATH(1, 2), LETTERPATH(0, 2),
  25.   LETTERPATH(3, 1), LETTERPATH(1, 2), LETTERPATH(3, 3), LETTERPATH(0, 1),
  26.   LETTERPATH(2, 2), LETTERPATH(0, 1), LETTERPATH(3, 3), LETTERPATH(1, 2),
  27.   LETTERPATH(0, 2), LETTERPATH(3, 3), LETTERPATH(2, 1), LETTERPATH(1, 2),
  28.   LETTEREND
  29. };
  30. /*}}}*/
  31. /*{{{  extern unsigned char letter_the[] =*/
  32. unsigned char letter_the[] =
  33. {
  34.   LETTERPOS(2, 7),
  35.   LETTERPATH(0, 2), LETTERPATH(2, 1), LETTERPATH(3, 3), LETTERPATH(1, 2),
  36.   LETTERPATH(0, 1), LETTERPATH(3, 2), LETTERPATH(0, 1), LETTERPATH(1, 2),
  37.   LETTERPATH(3, 3), LETTERPATH(2, 2), LETTERPATH(0, 1), LETTERPATH(3, 2),
  38.   LETTERPATH(2, 2), LETTERPATH(0, 1), LETTERPATH(3, 2),
  39.   LETTEREND
  40. };
  41. /*}}}*/
  42. /*{{{  extern unsigned char letter_game[] =*/
  43. unsigned char letter_game[] =
  44. {
  45.   LETTERPOS(2, 9),
  46.   LETTERPATH(2, 2), LETTERPATH(1, 2), LETTERPATH(3, 2), LETTERPATH(0, 1),
  47.   LETTERPATH(2, 1), LETTERPATH(3, 1), LETTERPATH(1, 1), LETTERPATH(3, 1),
  48.   LETTERPATH(0, 1), LETTERPATH(3, 2), LETTERPATH(0, 1), LETTERPATH(2, 2),
  49.   LETTERPATH(1, 1), LETTERPATH(3, 2), LETTERPATH(1, 1), LETTERPATH(3, 1),
  50.   LETTERPATH(0, 2), LETTERPATH(3, 1), LETTERPATH(1, 2), LETTERPATH(0, 2),
  51.   LETTERPATH(3, 1), LETTERPATH(1, 2), LETTERPATH(3, 3), LETTERPATH(2, 2),
  52.   LETTERPATH(0, 1), LETTERPATH(3, 2), LETTERPATH(2, 2), LETTERPATH(0, 1),
  53.   LETTERPATH(3, 2),
  54.   LETTEREND
  55. };
  56. /*}}}*/
  57. /*{{{  extern COORD CONST she_hold[16] =*/
  58. /*{{{  held ball offsets*/
  59. #define SHE_RIGHT1_BALL_X   (splyrw1_x_hot - CELL_WIDTH / 2)
  60. #define SHE_RIGHT1_BALL_Y   (splyrw1_y_hot - CELL_HEIGHT / 2)
  61. #define SHE_UP1_BALL_X      (splyrw1_y_hot - CELL_WIDTH / 2)
  62. #define SHE_UP1_BALL_Y      (splyrw1_x_hot - CELL_HEIGHT / 2)
  63. #define SHE_RIGHT2_BALL_X   (splyrw2_x_hot - CELL_WIDTH / 2)
  64. #define SHE_RIGHT2_BALL_Y   (splyrw2_y_hot - CELL_HEIGHT / 2)
  65. #define SHE_UP2_BALL_X      (splyrw2_y_hot - CELL_WIDTH / 2)
  66. #define SHE_UP2_BALL_Y      (splyrw2_x_hot - CELL_HEIGHT / 2)
  67. #define SHE_PUSH1_BALL_X    (splyrs1_x_hot - CELL_WIDTH / 2)
  68. #define SHE_PUSH1_BALL_Y    (splyrs1_y_hot - CELL_HEIGHT / 2)
  69. #define SHE_PUSH2_BALL_X    (splyrs2_x_hot - CELL_WIDTH / 2)
  70. #define SHE_PUSH2_BALL_Y    (splyrs2_y_hot - CELL_HEIGHT / 2)
  71. /*}}}*/
  72. COORD CONST she_hold[16] =
  73. {
  74.  {-SHE_UP1_BALL_X, -SHE_UP1_BALL_Y},
  75.  {-SHE_UP2_BALL_X, -SHE_UP2_BALL_Y},
  76.  { SHE_UP1_BALL_X,  SHE_UP1_BALL_Y},
  77.  { SHE_UP2_BALL_X,  SHE_UP2_BALL_Y},
  78.  {-SHE_RIGHT1_BALL_X, SHE_RIGHT1_BALL_Y},
  79.  {-SHE_RIGHT2_BALL_X, SHE_RIGHT2_BALL_Y},
  80.  { SHE_RIGHT1_BALL_X, SHE_RIGHT1_BALL_Y},
  81.  { SHE_RIGHT2_BALL_X, SHE_RIGHT2_BALL_Y},
  82.  { SHE_UP1_BALL_X, -SHE_UP1_BALL_Y},
  83.  { SHE_UP2_BALL_X, -SHE_UP2_BALL_Y},
  84.  {-SHE_UP1_BALL_X,  SHE_UP1_BALL_Y},
  85.  {-SHE_UP2_BALL_X,  SHE_UP2_BALL_Y},
  86.  {-SHE_PUSH1_BALL_X, SHE_PUSH1_BALL_Y},
  87.  {-SHE_PUSH2_BALL_X, SHE_PUSH2_BALL_Y},
  88.  { SHE_PUSH1_BALL_X, SHE_PUSH1_BALL_Y},
  89.  { SHE_PUSH2_BALL_X, SHE_PUSH2_BALL_Y},
  90. };
  91. /*}}}*/
  92. /*{{{  APPLE_SIZE CONST apple_sizes[7] =*/
  93. APPLE_SIZE CONST apple_sizes[6] =
  94.   {
  95.     {{CELL_WIDTH, CELL_HEIGHT}, {0, 0}},
  96.     {{CELL_WIDTH, CELL_HEIGHT}, {0, 0}},
  97.     {{CELL_WIDTH, CELL_HEIGHT}, {0, 0}},
  98.     {{CELL_WIDTH, CELL_HEIGHT}, {0, 0}},
  99.     {{DECAY_WIDTH, DECAY_HEIGHT},
  100.       {(CELL_WIDTH - DECAY_WIDTH) / 2, CELL_HEIGHT - DECAY_HEIGHT}},
  101.     {{ROT_WIDTH, ROT_HEIGHT},
  102.       {(CELL_WIDTH - ROT_WIDTH) / 2, CELL_HEIGHT - ROT_HEIGHT}},
  103.   };
  104. /*}}}*/
  105. /*{{{  COORD ball_hold[16] =*/
  106. /*{{{  held ball offsets*/
  107. #define HE_RIGHT1_BALL_X   (hplyrw1_x_hot - CELL_WIDTH / 2)
  108. #define HE_RIGHT1_BALL_Y   (hplyrw1_y_hot - CELL_HEIGHT / 2)
  109. #define HE_UP1_BALL_X      (hplyrw1_y_hot - CELL_WIDTH / 2)
  110. #define HE_UP1_BALL_Y      (hplyrw1_x_hot - CELL_HEIGHT / 2)
  111. #define HE_RIGHT2_BALL_X   (hplyrw2_x_hot - CELL_WIDTH / 2)
  112. #define HE_RIGHT2_BALL_Y   (hplyrw2_y_hot - CELL_HEIGHT / 2)
  113. #define HE_UP2_BALL_X      (hplyrw2_y_hot - CELL_WIDTH / 2)
  114. #define HE_UP2_BALL_Y      (hplyrw2_x_hot - CELL_HEIGHT / 2)
  115. #define HE_PUSH1_BALL_X    (hplyrs1_x_hot - CELL_WIDTH / 2)
  116. #define HE_PUSH1_BALL_Y    (hplyrs1_y_hot - CELL_HEIGHT / 2)
  117. #define HE_PUSH2_BALL_X    (hplyrs2_x_hot - CELL_WIDTH / 2)
  118. #define HE_PUSH2_BALL_Y    (hplyrs2_y_hot - CELL_HEIGHT / 2)
  119. /*}}}*/
  120. #ifndef AMIGAOS
  121. COORD ball_hold[16] =
  122. #else
  123. COORD ball_hold[16];
  124. COORD he_hold[16] =
  125. #endif /* AMIGAOS */
  126. {
  127.  {-HE_UP1_BALL_X, -HE_UP1_BALL_Y},
  128.  {-HE_UP2_BALL_X, -HE_UP2_BALL_Y},
  129.  { HE_UP1_BALL_X,  HE_UP1_BALL_Y},
  130.  { HE_UP2_BALL_X,  HE_UP2_BALL_Y},
  131.  {-HE_RIGHT1_BALL_X, HE_RIGHT1_BALL_Y},
  132.  {-HE_RIGHT2_BALL_X, HE_RIGHT2_BALL_Y},
  133.  { HE_RIGHT1_BALL_X, HE_RIGHT1_BALL_Y},
  134.  { HE_RIGHT2_BALL_X, HE_RIGHT2_BALL_Y},
  135.  { HE_UP1_BALL_X, -HE_UP1_BALL_Y},
  136.  { HE_UP2_BALL_X, -HE_UP2_BALL_Y},
  137.  {-HE_UP1_BALL_X,  HE_UP1_BALL_Y},
  138.  {-HE_UP2_BALL_X,  HE_UP2_BALL_Y},
  139.  {-HE_PUSH1_BALL_X, HE_PUSH1_BALL_Y},
  140.  {-HE_PUSH2_BALL_X, HE_PUSH2_BALL_Y},
  141.  { HE_PUSH1_BALL_X, HE_PUSH1_BALL_Y},
  142.  { HE_PUSH2_BALL_X, HE_PUSH2_BALL_Y},
  143. };
  144. /*}}}*/
  145. /*{{{  COORD CONST ball_throw[8] =*/
  146. COORD CONST ball_throw[8] =
  147. {
  148.   {-GAP_WIDTH / 2, -(CELL_HEIGHT + GAP_HEIGHT) / 2},
  149.   {GAP_WIDTH / 2, (CELL_HEIGHT + GAP_HEIGHT) / 2},
  150.   {-(CELL_WIDTH + GAP_WIDTH) / 2, GAP_HEIGHT / 2},
  151.   {(CELL_WIDTH + GAP_WIDTH) / 2, GAP_HEIGHT / 2},
  152.   {GAP_WIDTH / 2, -(CELL_HEIGHT + GAP_HEIGHT) / 2},
  153.   {-GAP_WIDTH / 2, (CELL_HEIGHT + GAP_HEIGHT) / 2},
  154.   {-(CELL_WIDTH + GAP_WIDTH) / 2, GAP_HEIGHT / 2},
  155.   {(CELL_WIDTH + GAP_WIDTH) / 2, GAP_HEIGHT / 2},
  156. };
  157. /*}}}*/
  158. unsigned CONST ball_dir[8] = {0, 1, 2, 1, 3, 2, 2, 1};
  159. /*{{{  unsigned CONST ball_returns[BALL_RETURNS] =*/
  160. #if BALL_RETURNS != 3
  161.   #error BALL_RETURNS != 3
  162. #endif /* BALL_RETURNS */
  163. unsigned CONST ball_returns[BALL_RETURNS] =
  164.   {FRAMES_PER_SECOND * 3 / 2, FRAMES_PER_SECOND * 7 / 2,
  165.     FRAMES_PER_SECOND * 11 / 2};
  166. /*}}}*/
  167. /*{{{  unsigned CONST player_dies[8] =*/
  168. unsigned CONST player_dies[8] =
  169.   {
  170.     3, 5, 8, 4,
  171.     2, 1, 8, 0,
  172.   };
  173. /*}}}*/
  174. /*{{{  unsigned CONST squish_scores[SQUISH_SCORES] =*/
  175. #if SQUISH_SCORES != 7
  176.   #error SQUISH_SCORES != 7
  177. #endif /* SQUISH_SCORES */
  178. unsigned CONST squish_scores[SQUISH_SCORES] =
  179. {
  180.   0,
  181.   1000 / SCORE_ROUND,
  182.   2000 / SCORE_ROUND,
  183.   4000 / SCORE_ROUND,
  184.   6000 / SCORE_ROUND,
  185.   8000 / SCORE_ROUND,
  186.   9900 / SCORE_ROUND
  187. };
  188. /*}}}*/
  189. #ifndef AMIGAOS
  190. /*{{{  TITLE title_text[] =*/
  191. TITLE title_text[] =
  192.   {
  193. #if __STDC__
  194.     {XMRISVERSION " " DATE},
  195. #else
  196.     {"%s %s"},
  197. #endif /* __STDC__ */
  198.     {"Left - %s",         2},
  199.     {"Right - %s",        3},
  200.     {"Up - %s",           0},
  201.     {"Down - %s",         1},
  202.     {"Throw - %s",        KEY_THROW},
  203.     {"Pause - %s",        KEY_PAUSE},
  204.     {"Quit - %s",         KEY_QUIT},
  205.     {"Iconize - %s",      KEY_ICONIZE},
  206.     {"Keyboard - %s",     KEY_KEYBOARD},
  207.     {"Press %s to start", KEY_THROW},
  208.     {""},
  209.     {COPYRIGHT},
  210.     {"Sprites also by Stefan Gustavson"},
  211.     {NULL}
  212.   };
  213. /*}}}*/
  214. #endif /* AMIGAOS */
  215. /*{{{  unsigned char CONST *lettering[] =*/
  216. unsigned char CONST *lettering[] =
  217. {
  218.   letter_mris,
  219.   letter_the,
  220.   letter_game,
  221.   NULL
  222. };
  223. /*}}}*/
  224.